package uk.ac.cam.djjb2.mygame;

import java.io.DataOutput;
import java.io.IOException;

public interface Replica {
	public Class<? extends ClientReplica> getClientClass();
	public int getId();
	public ReplicaManager getReplicaManager();
	public boolean shouldExist(Client client);
	public boolean shouldUpdate(Client client);
	public void sendCreateMessage(Client client, DataOutput message) throws IOException;
	public void sendDestroyMessage(Client client, DataOutput message) throws IOException;
	public void sendUpdateMessage(Client client, DataOutput message) throws IOException;
	public boolean postUpdate();
	public void destroy();
}
